System.register([], function (_export) {
"use strict";
var ListenerExpression, Listener;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
return {
setters: [],
execute: function () {
ListenerExpression = (function () {
function ListenerExpression(eventManager, targetEvent, sourceExpression, delegate, preventDefault) {
_classCallCheck(this, ListenerExpression);
this.eventManager = eventManager;
this.targetEvent = targetEvent;
this.sourceExpression = sourceExpression;
this.delegate = delegate;
this.discrete = true;
this.preventDefault = preventDefault;
}
ListenerExpression.prototype.createBinding = function createBinding(target) {
return new Listener(this.eventManager, this.targetEvent, this.delegate, this.sourceExpression, target, this.preventDefault);
};
return ListenerExpression;
})();
_export("ListenerExpression", ListenerExpression);
Listener = (function () {
function Listener(eventManager, targetEvent, delegate, sourceExpression, target, preventDefault) {
_classCallCheck(this, Listener);
this.eventManager = eventManager;
this.targetEvent = targetEvent;
this.delegate = delegate;
this.sourceExpression = sourceExpression;
this.target = target;
this.preventDefault = preventDefault;
}
Listener.prototype.bind = function bind(source) {
var _this = this;
if (this._disposeListener) {
if (this.source === source) {
return;
}
this.unbind();
}
this.source = source;
this._disposeListener = this.eventManager.addEventListener(this.target, this.targetEvent, function (event) {
var prevEvent = source.$event;
source.$event = event;
var result = _this.sourceExpression.evaluate(source);
source.$event = prevEvent;
if (result !== true && _this.preventDefault) {
event.preventDefault();
}
return result;
}, this.delegate);
};
Listener.prototype.unbind = function unbind() {
if (this._disposeListener) {
this._disposeListener();
this._disposeListener = null;
}
};
return Listener;
})();
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2xpc3RlbmVyLWV4cHJlc3Npb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BQWEsa0JBQWtCLEVBc0J6QixRQUFROzs7Ozs7O0FBdEJELHdCQUFrQjtBQUNsQixpQkFEQSxrQkFBa0IsQ0FDakIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDO2dDQUR2RSxrQkFBa0I7O0FBRTNCLGNBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQ2pDLGNBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQy9CLGNBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUN6QyxjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN6QixjQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUNyQixjQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztTQUN0Qzs7QUFSVSwwQkFBa0IsV0FVN0IsYUFBYSxHQUFBLHVCQUFDLE1BQU0sRUFBQztBQUNuQixpQkFBTyxJQUFJLFFBQVEsQ0FDakIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLE1BQU0sRUFDTixJQUFJLENBQUMsY0FBYyxDQUNsQixDQUFDO1NBQ0w7O2VBbkJVLGtCQUFrQjs7O29DQUFsQixrQkFBa0I7O0FBc0J6QixjQUFRO0FBQ0QsaUJBRFAsUUFBUSxDQUNBLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUM7Z0NBRHRGLFFBQVE7O0FBRVYsY0FBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDakMsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDL0IsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDekIsY0FBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBQ3pDLGNBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1NBQ3RDOztBQVJHLGdCQUFRLFdBVVosSUFBSSxHQUFBLGNBQUMsTUFBTSxFQUFDOzs7QUFDVixjQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztBQUN2QixnQkFBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBQztBQUN4QixxQkFBTzthQUNSOztBQUVELGdCQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7V0FDZjs7QUFFRCxjQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNyQixjQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBQSxLQUFLLEVBQUc7QUFDaEcsZ0JBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDOUIsa0JBQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLGdCQUFJLE1BQU0sR0FBRyxNQUFLLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxrQkFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDMUIsZ0JBQUcsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFLLGNBQWMsRUFBQztBQUN4QyxtQkFBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO0FBQ0QsbUJBQU8sTUFBTSxDQUFDO1dBQ2YsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkI7O0FBOUJHLGdCQUFRLFdBZ0NaLE1BQU0sR0FBQSxrQkFBRTtBQUNOLGNBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO0FBQ3ZCLGdCQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztBQUN4QixnQkFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztXQUM5QjtTQUNGOztlQXJDRyxRQUFRIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2xpc3RlbmVyLWV4cHJlc3Npb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTGlzdGVuZXJFeHByZXNzaW9uIHtcbiAgY29uc3RydWN0b3IoZXZlbnRNYW5hZ2VyLCB0YXJnZXRFdmVudCwgc291cmNlRXhwcmVzc2lvbiwgZGVsZWdhdGUsIHByZXZlbnREZWZhdWx0KXtcbiAgICB0aGlzLmV2ZW50TWFuYWdlciA9IGV2ZW50TWFuYWdlcjtcbiAgICB0aGlzLnRhcmdldEV2ZW50ID0gdGFyZ2V0RXZlbnQ7XG4gICAgdGhpcy5zb3VyY2VFeHByZXNzaW9uID0gc291cmNlRXhwcmVzc2lvbjtcbiAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7XG4gICAgdGhpcy5kaXNjcmV0ZSA9IHRydWU7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCA9IHByZXZlbnREZWZhdWx0O1xuICB9XG5cbiAgY3JlYXRlQmluZGluZyh0YXJnZXQpe1xuICAgIHJldHVybiBuZXcgTGlzdGVuZXIoXG4gICAgICB0aGlzLmV2ZW50TWFuYWdlcixcbiAgICAgIHRoaXMudGFyZ2V0RXZlbnQsXG4gICAgICB0aGlzLmRlbGVnYXRlLFxuICAgICAgdGhpcy5zb3VyY2VFeHByZXNzaW9uLFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5wcmV2ZW50RGVmYXVsdFxuICAgICAgKTtcbiAgfVxufVxuXG5jbGFzcyBMaXN0ZW5lciB7XG4gIGNvbnN0cnVjdG9yKGV2ZW50TWFuYWdlciwgdGFyZ2V0RXZlbnQsIGRlbGVnYXRlLCBzb3VyY2VFeHByZXNzaW9uLCB0YXJnZXQsIHByZXZlbnREZWZhdWx0KXtcbiAgICB0aGlzLmV2ZW50TWFuYWdlciA9IGV2ZW50TWFuYWdlcjtcbiAgICB0aGlzLnRhcmdldEV2ZW50ID0gdGFyZ2V0RXZlbnQ7XG4gICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlO1xuICAgIHRoaXMuc291cmNlRXhwcmVzc2lvbiA9IHNvdXJjZUV4cHJlc3Npb247XG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCA9IHByZXZlbnREZWZhdWx0O1xuICB9XG5cbiAgYmluZChzb3VyY2Upe1xuICAgIGlmKHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lcil7XG4gICAgICBpZih0aGlzLnNvdXJjZSA9PT0gc291cmNlKXtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVuYmluZCgpO1xuICAgIH1cblxuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgIHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lciA9IHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy50YXJnZXQsIHRoaXMudGFyZ2V0RXZlbnQsIGV2ZW50ID0+e1xuICAgICAgdmFyIHByZXZFdmVudCA9IHNvdXJjZS4kZXZlbnQ7XG4gICAgICBzb3VyY2UuJGV2ZW50ID0gZXZlbnQ7XG4gICAgICB2YXIgcmVzdWx0ID0gdGhpcy5zb3VyY2VFeHByZXNzaW9uLmV2YWx1YXRlKHNvdXJjZSk7XG4gICAgICBzb3VyY2UuJGV2ZW50ID0gcHJldkV2ZW50O1xuICAgICAgaWYocmVzdWx0ICE9PSB0cnVlICYmIHRoaXMucHJldmVudERlZmF1bHQpe1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB0aGlzLmRlbGVnYXRlKTtcbiAgfVxuXG4gIHVuYmluZCgpe1xuICAgIGlmKHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lcil7XG4gICAgICB0aGlzLl9kaXNwb3NlTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0= |